"""
https://leetcode.cn/problems/fix-names-in-a-table/description/?envType=study-plan-v2&envId=30-days-of-pandas&lang=pythondata

1667. 修复表中的名字
已解答
简单
相关标签
premium lock icon
相关企业
SQL Schema
Pandas Schema
表： Users

+----------------+---------+
| Column Name    | Type    |
+----------------+---------+
| user_id        | int     |
| name           | varchar |
+----------------+---------+
user_id 是该表的主键(具有唯一值的列)。
该表包含用户的 ID 和名字。名字仅由小写和大写字符组成。
 

编写解决方案，修复名字，使得只有第一个字符是大写的，其余都是小写的。

返回按 user_id 排序的结果表。

返回结果格式示例如下。

 

示例 1：

输入：
Users table:
+---------+-------+
| user_id | name  |
+---------+-------+
| 1       | aLice |
| 2       | bOB   |
+---------+-------+
输出：
+---------+-------+
| user_id | name  |
+---------+-------+
| 1       | Alice |
| 2       | Bob   |
+---------+-------+

"""

import pandas as pd

def fix_names(users: pd.DataFrame) -> pd.DataFrame:
    def rename(row):
        norm_name = row['name'].capitalize()
        return norm_name[0].upper()+norm_name[1:]
    users['name']=users.apply(rename,axis=1)
    return users.sort_values(by='user_id')


if __name__=="__main__":
    users = pd.DataFrame({
        'user_id': [1,2],
        'name': ['aLice', 'bOB']
    })
    print(fix_names(users))

